package com.myjob.enums;

/**
 * 一个用来存储所有枚举类型常量的类
 * @author Chen Yuan
 * @create 2021-01-12  16:50
 */
public class CompanyEnums {

	/**
	 * 企业融资情况
	 * '未融资 ：1','天使轮：2','A轮：3','B轮：4','C轮：5','D轮及以上：6','已上市：7','不需要融资；8'
	 */
	public enum FINANCING_SITUATION{
		// 为融资
		not("1", "未融资"),
		angel("2", "天使轮"),
		A("3", "A轮"),
		B("4", "B轮"),
		C("5", "C轮"),
		D_plus("6", "D轮及以上"),
		listed("7", "已上市"),
		unwanted("8", "不需要融资");

		private String key;
		private String value;

		FINANCING_SITUATION(String key, String value) {
			this.key = key;
			this.value = value;
		}

		public String getKey() {
			return key;
		}

		public String getValue() {
			return value;
		}

		public static String getCode(String name) {
			for (FINANCING_SITUATION c : FINANCING_SITUATION.values()) {
				if (c.value.equals(name)) {
					return c.key;
				}
			}
			return null;
		}
	}

	/**
	 * 企业规模
	 * '0~19人：1','20~99人：2','100~499人：3','500~999人：4','1000~9999人：5','10000人以上：6'
	 */
	public enum COMPANY_SIZE{
		// 等级的后缀就是对应规模人数的下限
		level_0("1", "0~19人"),
		level_20("2", "20~99人"),
		level_100("3", "100~499人"),
		level_500("4", "500~999人"),
		level_1000("5", "1000~9999人"),
		level_10000("6", "10000人以上");

		private String key;
		private String value;

		COMPANY_SIZE(String key, String value) {
			this.key = key;
			this.value = value;
		}

		public String getKey() {
			return key;
		}

		public String getValue() {
			return value;
		}

		public static String getCode(String name) {
			for (COMPANY_SIZE c : COMPANY_SIZE.values()) {
				if (c.value.equals(name)) {
					return c.key;
				}
			}
			return null;
		}
	}

	/**
	 * 企业类型
	 * '有限责任公司：1','股份有限公司：2'
	 */
	public enum ENTERPRISES_TYPE{
		// 有限责任公司的简称为 Co.Ltd.
		co_ltd("1", "有限责任公司"),
		// 股份有限公司的简称为 Corp.
		corp("2", "股份有限公司");

		private String key;
		private String value;

		ENTERPRISES_TYPE(String key, String value) {
			this.key = key;
			this.value = value;
		}

		public String getKey() {
			return key;
		}

		public String getValue() {
			return value;
		}

		public static String getCode(String name) {
			for (ENTERPRISES_TYPE c : ENTERPRISES_TYPE.values()) {
				if (c.value.equals(name)) {
					return c.key;
				}
			}
			return null;
		}
	}

	/**
	 * 经营状态
	 * '存续（在营、开业、在册）：1','在业（正常、有效）：2','吊销：3','注销：4','迁入：5','迁出：6','停业：7','清算：8'
	 */
	public enum OPERATION_STATUS{
		// 专业名词不好翻译，直接使用拼音
		xucun("1", "存续（在营、开业、在册）"),
		zaiye("2", "在业（正常、有效）"),
		diaoxiao("3", "吊销"),
		zhuxiao("4", "注销"),
		qianru("5", "迁入"),
		qianchu("6", "迁出"),
		tingye("7", "停业"),
		qinsuan("8", "清算");

		private String key;
		private String value;

		OPERATION_STATUS(String key, String value) {
			this.key = key;
			this.value = value;
		}

		public String getKey() {
			return key;
		}

		public String getValue() {
			return value;
		}

		public static String getCode(String name) {
			for (OPERATION_STATUS c : OPERATION_STATUS.values()) {
				if (c.value.equals(name)) {
					return c.key;
				}
			}
			return null;
		}
	}

	/**
	 * 会员等级
	 *	免费版 :1 ; 基本版:2  ;  进阶版:3  ;  高级版:4
	 */
	public enum MEMBER_LEVEL{
		//
		free("1", "免费版"),
		basic("2", "基本版"),
		advanced("3", "进阶版"),
		plus("4", "高级版");

		private String key;
		private String value;

		MEMBER_LEVEL(String key, String value) {
			this.key = key;
			this.value = value;
		}

		public String getKey() {
			return key;
		}

		public String getValue() {
			return value;
		}

		public static String getCode(String name) {
			for (MEMBER_LEVEL c : MEMBER_LEVEL.values()) {
				if (c.value.equals(name)) {
					return c.key;
				}
			}
			return null;
		}
	}

}
